const utils = require('../../js/utils')

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 开始和结束时间
    startDate: '',
    endDate: '',
    // 选择器数据
    pickerDate: '',
    // 我的记账数据
    allBookingData: [],
    // 骨架屏状态
    loading: true,
    // 每次查询多少条数据（查询数据量）
    limit: 15,
    // 查询起始位置（偏移量）
    offset: 0,
    // 所有数据是否已经加载完成
    isLoaded: false
  },

  // 获取所有我的记账
  getAllBooking(startDate, endDate) {
    wx.showLoading({
      title: '加载中...'
    })
    wx.cloud.callFunction({
      name: 'get_booking',
      data: {
        // 开始结束时间
        startDate,
        endDate,
        // 偏移量
        offset: this.data.offset,
        // 数据量
        limit: this.data.limit
      }
    }).then(res => {
      // 
      // 处理时间
      res.result.data.forEach(v => {
        v.time = utils.formatDate(v.time, 'yyyy-MM-dd hh:mm');
        // 处理金额
        v.money = utils.thousandth(Number(v.money).toFixed(2));
      })
      // 懒加载使用push
      this.data.allBookingData.push(...res.result.data);
      // 保存数据
      this.setData({
        allBookingData: this.data.allBookingData,
        offset: this.data.offset + this.data.limit,
        loading: false
      })
      // 
      // 关闭加载提示
      wx.hideLoading();
      // 判断所有数据是否已经查询完成
      if(res.result.data.length < this.data.limit) {
        this.setData({
          isLoaded: true
        })
      }
    }).catch(err => {
      
      wx.hideLoading();
    })
  },

  // 删除记录
  delBookingData(e) {
    // 
    let id = e.detail.id;
    let _this = this;
    wx.showModal({
      title: '提示',
      content: '是否删除该记录？',
      success (res) {
      // success: res => {
        if (res.confirm) {
          wx.showLoading({
            title: '加载中...'
          })
          wx.cloud.callFunction({
            name: 'del_booking',
            data: {
              id
            }
          }).then(res => {
            // 
            // 关闭加载提示
            wx.hideLoading();
            if(res.result.stats.removed == 1) {
              wx.showToast({
                title: '删除成功',
              })
              for(let i = 0; i < _this.data.allBookingData.length; i++) {
                if(id == _this.data.allBookingData[i]._id) {
                  _this.data.allBookingData.splice(i, 1);
                  break;
                }
              }
              _this.setData({
                allBookingData: _this.data.allBookingData
              })
            }
          }).catch(err => {
            
            wx.hideLoading();
          })
        } else if (res.cancel) {
          
        }
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 获取当年第一月第一天为开始时间
    let s = utils.formatDate(new Date(), 'yyyy-01-01');
    // 获取当前时间为结束时间
    let e = utils.formatDate(new Date(), 'yyyy-MM-dd');
    // 设置时间
    this.setData({
      startDate: s,
      endDate: e,
      pickerDate: e
    })
    // 调用获取记录函数
    this.getAllBooking(this.data.startDate, this.data.pickerDate);
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    // 如果数据已经加载完成则不再加载
    if(this.data.isLoaded) {
      return;
    }
    // 懒加载我的记账数据
    this.getAllBooking(this.data.startDate, this.data.endDate);
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})